<?php
/**
 * Clase de la tabla Actividades.
 */
class Variables_Model_DbTable_Variables extends Zend_Db_Table_Abstract {
	/** Table name */
	protected $_name = 'variables';
	protected $_primary = 'codvariable';
	protected $_sequence = 'seq_variables';
//	protected $_rowClass = 'App_Audit_Row';
	
	public function getVariables($datos=array()) {
		$select = $this->select()
		               ->from(array('v'=>'variables'),array("*"))
		               ->order("v.codvariable");
		$select->setIntegrityCheck(false);
		
		if (isset($datos["codusuario"])){
		    $select->joinLeft(array('d'=>'dimensionesvariable'),'d.codvariable=v.codvariable',array("*","CASE v.periodicidad
                                                                                                           WHEN 1 THEN to_char(d.fechaactualiza + numtodsinterval(1, 'DAY'), 'YYYY-MM-DD')
                                                                                                           WHEN 2 THEN to_char(d.fechaactualiza + numtodsinterval(8, 'DAY'), 'YYYY-MM-DD')
                                                                                                           WHEN 3 THEN to_char(d.fechaactualiza + numtoyminterval(1, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 4 THEN to_char(d.fechaactualiza + numtoyminterval(3, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 5 THEN to_char(d.fechaactualiza + numtoyminterval(6, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 6 THEN to_char(d.fechaactualiza + numtoyminterval(1, 'YEAR'), 'YYYY-MM-DD')
                                                                                                        END as fechavigencia "));
		    $select->join(array('up'=>'usuariosdimension'),'up.coddimension=d.coddimension',NULL);
		    $select->joinLeft(array('u'=>'unidades'),'u.codunidad=d.codunidad',array("nombreunidad"));
		    $select->where("up.codusuario=?",$datos["codusuario"]);
		}
		
		if (isset($datos["seleccion"])){
		    $select->joinLeft(array('d'=>'dimensionesvariable'),'d.codvariable=v.codvariable',array("*","CASE v.periodicidad
                                                                                                           WHEN 1 THEN to_char(d.fechaactualiza + numtodsinterval(1, 'DAY'), 'YYYY-MM-DD')
                                                                                                           WHEN 2 THEN to_char(d.fechaactualiza + numtodsinterval(8, 'DAY'), 'YYYY-MM-DD')
                                                                                                           WHEN 3 THEN to_char(d.fechaactualiza + numtoyminterval(1, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 4 THEN to_char(d.fechaactualiza + numtoyminterval(3, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 5 THEN to_char(d.fechaactualiza + numtoyminterval(6, 'MONTH'), 'YYYY-MM-DD')
                                                                                                           WHEN 6 THEN to_char(d.fechaactualiza + numtoyminterval(1, 'YEAR'), 'YYYY-MM-DD')
                                                                                                        END as fechavigencia "));
		    $select->joinLeft(array('u'=>'unidades'),'u.codunidad=d.codunidad',array("nombreunidad"));
		}
		
//		Zend_Debug::dump($select->__toString());
		return $select->query()->fetchAll();
	}
	
	
}
